package com.hui.wanxin.web.utils;

import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONObject;
import com.hui.wanxin.web.entity.wx.wxUserInfo;

/**
 * @author: 灰灰
 * @date: 2023年10月17日 11:10
 * @ClassName: HttpUtils
 * @Description: TODO
 */

public class HttpUtils {


    public static class wxHttpUtils {

        // 获取AccessToken
        public static JSONObject getAccessToken(String appId, String appSecret) {
            String apiUrl = StrUtil.format(
                    "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={}&secret={}",
                    appId, appSecret
            );
            String body = HttpRequest.get(apiUrl).execute().body();
            if(body == null){
                throw new RuntimeException("body信息为空");
            }
            return new JSONObject(body);
        }

        /**
         *  获取微信用户信息
         * @param appId
         * @param secret
         * @param code
         * @return
         */
        public static wxUserInfo getWxUserInfo(String appId, String secret, String code) {
            String apiUrl = StrUtil.format(
                    "https://api.weixin.qq.com/sns/jscode2session?appid={}&secret={}&js_code={}&grant_type=authorization_code",
                    appId, secret, code
            );
            String body = HttpRequest.get(apiUrl).execute().body();
            if(body == null){
                throw new RuntimeException("body信息为空");
            }
            wxUserInfo userInfo = new wxUserInfo();
            MyUtils.MyJson<wxUserInfo> myJson = new MyUtils.MyJson<>();
            userInfo = myJson.jsonToBean(userInfo,body);
            return userInfo;
        }
    }

}
